Interface for qBeta module object

Origin: BETAworld

BETA: obj
   %ID BETA
   --%OSDvisibility disguised
   
   %module LIB,LIB.StringLib
   %public
   Object:
      %ID Object
      %basic
      %public
      :=:
         %basic
         in V: var Value
      :-:
         %basic
         in R: ref Object
      ==:
         %basic
         in objx: ref Object
         out V: var boolean
      =/=:
         %basic
         in objx: ref Object
         out V: var boolean
      suspend:
         %basic
      attach:
         %basic
         in V: var integer
      call:
         %basic
      onResume:
         %basic
      onSuspend:
         %basic
      dumpObj:
         %basic
         out R: ref Indexed
   Value:
      %ID Value
      %globals
      %basic
      %public
      :=:
         %basic
         in V: var Value
      =:<
         %basic
         in V: var this
         out B: var boolean
      <=:<
         %basic
         in V: var this
         out B: var boolean
   universal: Value
      %ID universal
      %basic ,
      %globals
      +:
         %basic
         in V: var integer
         out R: var integer
      -:
         %basic
         in V: var integer
         out R: var integer
   integer: value
      %ID integer
      %basic ,
      %globals
      %public
      _thisBasicValue: var Universal
      +:
         %basic
         in V: var integer
         out R: var integer
      -:
         %basic
         in V: var integer
         out R: var integer
      *:
         %basic
         in V: var integer
         out R: var integer
      /:
         %basic
         in V: var integer
         out R: var integer
      //:
         %basic
         in V: var integer
         out B: var integer
      /%:
         %basic
         in V: var integer
         out R: var integer
      =?:
         %basic
         in V: var integer
         out B: var boolean
      <:
         %basic
         in V: var integer
         out B: var boolean
      <=?:
         %basic
         in V: var integer
         out B: var boolean
      >:
         %basic
         in V: var integer
         out B: var boolean
      >=:
         %basic
         in V: var integer
         out B: var boolean
      <>:
         %basic
         in V: var integer
         out B: var boolean
      cmpAndSwap:
         %basic
         in V: var integer
         out res: var integer
   Boolean: value
      %globals inSub
      %basic ,
      %public
      _thisBasicValue: var Universal
      &&:
         %basic
         in B: var boolean
         out R: var boolean
      ||:
         %basic
         in B: var boolean
         out R: var boolean
      =?:
         %basic
         in B: var boolean
         out R: var boolean
      not:
         %basic
         out R: var boolean
   False:
      %globals
      out B: var boolean
   True:
      %globals
      out B: var boolean
   char: value
      %id "char"
      %globals
      %basic ,
      %public
      _thisBasicValue: var Universal
      +:
         %basic
         in V: var char
         out R: var char
      -:
         %basic
         in V: var char
         out R: var char
      =?:
         %basic
         in V: var char
         out B: var boolean
      <:
         %basic
         in V: var char
         out B: var boolean
      <=?:
         %basic
         in V: var char
         out B: var boolean
      >:
         %basic
         in V: var char
         out B: var boolean
      >=:
         %basic
         in V: var char
         out B: var boolean
      <>:
         %basic
         in V: var char
         out B: var boolean
   universalFloat: value
      %basic
      %globals
      +:
         %basic
         in V: var float
         out R: var float
      -:
         %basic
         in V: var float
         out R: var float
      *:
         %basic
         in V: var float
         out R: var float
      /:
         %basic
         in V: var float
         out R: var float
   float: Value
      %globals
      %basic
      _thisBasicValue: var Float
      %public
      +:
         %basic
         in V: var float
         out R: var float
      -:
         %basic
         in V: var float
         out R: var float
      *:
         %basic
         in V: var float
         out R: var float
      /:
         %basic
         in V: var float
         out R: var float
      =:
         %basic
      <:
         %basic
         in V: var float
         out B: var boolean
      <=:
         %basic
         in V: var float
         out B: var boolean
      >:
         %basic
         in V: var float
         out B: var boolean
      >=:
         %basic
         in V: var float
         out B: var boolean
      <>:
         %basic
         in V: var float
         out B: var boolean
      ^:
         in n: var integer
         out R: var Float
   put: -- to be eliminated
      %globals
      %basic
      in ch: val char
   _put:
      %globals
      %basic
      in ch: val char
   _get:
      %basic
      out c: var char
   _iget:
      %external
      out ch: var char
   _kbhit:
      %external
      out B: var boolean
   CvalueX: value
      %ID "cValue"
      thisValue:< CvalueX
      =:<
         %basic
         in V: var thisValue
         Vx: var integer
         Vy: var integer
         out b: var boolean
      eq:
         in V: var thisValue
      dum1: var integer
      dum2: var integer
   none:
      %basic
      none_x: var integer
   immutable:
      %basic
   unique:
   @innerX::inner:
      %basic
      in inner: ref Object
   inner:
      %basic
      in inner: ref Object
   this:
      %basic
      in this: ref Object
   disable:
      %basic
   enable:
      %basic
   fork:
      %basic
      in S: ref Object
   sleep:
      %basic
      in V: var integer
   corex:
      dummy: var integer
   thisCoreIdx:
      -- perhaps never used and/or implemented i betaVM?
      %basic
      outV: var integer
   inSub:
      %basic
   method:
      dummy: var integer -- to handle %kind method, but not implememnted
   disguised:
      dummy: var integer -- const for OSDvisibility
   SkipInternal:
      dummy: var integer -- const for OSDvisibility
   Show:
      dummy: var integer -- const for OSDvisibility
   Indexed:
      %globals
      %basic
      %public
      in range: var Integer
      elm:< Object
      length:
         out res: var integer
      @put::at:
         %basic
         in put: ref elm
         in at: var integer
      put:at:
         %basic
      @get::
         %basic
         in get: var integer
         out V: var integer
      get:
         %basic
         out V: var integer
      @getV::
         %basic
         in getV: var integer
         out V: var elm
      has:
         out B: var Boolean
      scan:
         current: var integer
      asString:
         %basic
         out S: ref Object
   IndexedRef:
      %globals
      %basic
      %public
      in range: var Integer
      elm:< Object
      length:
         out res: var integer
      @put::at:
         %basic
         in put: ref elm
         in at: var integer
      put:at:
         %basic
      @get::
         %basic
         in get: var integer
         out V: ref elm
      get:
         %basic
         out V: ref elm
   @if::then:
      %globals inSub
      %basic
      in if: var boolean
      then:< Object
   @ifX::thenX:
      %globals inSub
      %basic
      in ifX: var boolean
      thenX:< Object
   @restart::
      %basic
      in restart: var integer
   @leave::
      %basic
      in leave: var integer
   @if::then:else:
      %globals inSub --,OSDvisibility[disguised]]
      --Declaration of if then else control pattern
      
      in if: var Boolean
      then:<
      else:<
      if_L: obj
   cycle:
      %globals inSub
   @for::to:repeat:
      %globals inSub
      in for: var integer
      in to: var integer
      repeat:< Object
      %public
      inx: var integer
   switch:
      in V: var integer
      %public
      case:
         in x: ref Indexed
   rswitch:
      in V: ref LIB.StringLib.string
      %public
      case:
         in x: ref IndexedRef
   ascii: obj
      asciiFoo: obj
         msg1:
      asciiBar: obj
         msg2:
      nl: val
      cr: val
      newline: var char
      isLetter:
         in ch: var char
         out B: var Boolean
      isDigit:
         in ch: var Char
         out B: var Boolean
   newline:
      %globals
   int2chars:
      %globals inSub
      in V: var integer
      ch: var char
      D: obj Indexed(,#integer)
      L: var integer
      isNeg: var Boolean
      doit:
         loop: obj
   putint:
      %globals
      in V: var integer
      D: obj Indexed(,#integer)
      L: var integer
      isNeg: var Boolean
   exp:
      %globals
      in F: var Float
      in n: var integer
      out R: var Float
   sqrt:
      %basic
      %unit "$","$^(1/2)"
      in V: var float
      out R: var float
   cbrt:
      %basic
      %unit "$","$^(1/3)"
      in V: var float
      out R: var float
   log:
      %basic
      in V: var float
      out R: var float
   putFloat:
      %basic
      in X: var Float
      out V: var integer
   putFloatX:
      %globals
      in V: var Float
      N: var integer
      X: var float
      Y: var Float
      afterDot:
         lz: var integer
         rest: var float
         Irest: var integer
         ch: var char
         S: ref LIB.StringLib.String
         ix: var integer
         elimTrailingBlanks: